import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
// 引入自定义的各个语言配置文件
import zh from './config/zh.js'
import en from './config/en.js'
import zhHant from './config/zh-Hant.js'

const messages = {
  en: {
    ...en,
  },
  zh: {
    ...zh,
  },
  zhFan: {
    ...zhHant,
  }
}
// 创建vue-i18n实例i18n
const i18n = new VueI18n({
  // 设置默认语言
  locale: uni.getLocale() || 'zh', // 语言标识,页面对应显示相同的语言
  // 添加多语言（每一个语言标示对应一个语言文件）
  messages: messages,
  silentFallbackWarn: true,
})
// 非 vue 文件中使用这个方法
const translate = (localeKey) => {
  const locale = localStorage.getItem('language') || 'zh'
  const hasKey = i18n.te(localeKey, locale) // 使用i18n的 te 方法来检查是否能够匹配到对应键值
  const translatedStr = i18n.t(localeKey)
  if (hasKey) {
    return translatedStr
  }
  return localeKey
}
// 暴露i18n
export {
  i18n,
  translate
}